--------------------------------------------------------------------------------
Changelog:
--------------------------------------------------------------------------------

V2.1.16.1 (2020-08-13)
----------------------
 - RCX-868: [Module Loader] libc/rcX trampolines for (ARM compiled) functions are not 4Byte aligned - Closed (Fixed)
 - RCX-871: [Module Loader] Jump table entries for newly added DDP_* functions are not available - Closed (Fixed)
 - RCX-872: [General] circular library dependency between librcx_mid and librcx_netx - Closed (Fixed)

V2.1.16.0 (2020-07-21)
----------------------
 - RCX-870: [Middleware] Backport of netX90/netX4000 DDP handling to rcX - Closed (Fixed)

V2.1.15.1 (2019-10-01)
----------------------
 - RCX-867: [Module Loader] Duplicate jump table entries for same index (Drv_IOSetLevel and Drv_IOGetLevel) - Closed (Fixed)
 - RCX-869: [Drivers] Driver EDD drops IP frames with IP checksum 0xFFFF - Closed (Fixed)

V2.1.15.0 (2019-08-01)
----------------------
 - RCX-860: [General] Add new device classes *_COMX_51_CCIES, *_NIOT_E_NPEX_BP52_IO, *_NIOT_E_NPEX_BP52_IOL - Closed (Fixed)
 - RCX-861: [General] Update WAF to V1.9.1.0 - Closed (Fixed)
 - RCX-862: [Drivers] No Link in case of 100MBit Fixed Mode and autoMDI - Closed (Fixed)
 - RCX-863: [General] Functions TLR_TIM_TIME_TO_TICK()/TLR_OS_TimeToTick() return wrong result for large arguments - Closed (Fixed)
 - RCX-864: [Drivers] Add new API functions to get/set configuration to Drv_Urt - Closed (Fixed)
 - RCX-865: [Drivers] Add new API functions to SQIROM driver - Closed (Done)

V2.1.14.2 (2019-06-07)
----------------------
 - RCX-859: [General] Including HilFileHeader.h, HilFileHeaderV3.h breaks Hilscher Definitions Hil_Compiler.h - Closed (Fixed)

V2.1.14.1 (2019-04-08)
----------------------
 - RCX-858: [Drivers] High CPU consumption when processing invalid UDP frame - Closed (Fixed)

V2.1.14.0 (2018-11-05)
----------------------
 - RCX-857: [Middleware] RCX_BACKUP_REQ not working anymore after rcX-784 issue fix - Closed (Fixed)

V2.1.13.0 (2018-09-27)
----------------------
 - RCX-854: [General] MAC address is missing in HW_DATA Boot Tokens - Closed (Fixed)
 - RCX-855: [General] Update SHM API to V1.0.6.0 - Closed (Fixed)

V2.1.12.0 (2018-03-19)
----------------------
 - RCX-388: [Drivers] Drv_HifSetupDMA() does not check the length of the DMA transfer - Closed (Fixed)
 - RCX-756: [Kernel] Trying to suspend a task while scheduler is locked may schedule wrong task once - Closed (Fixed)
 - RCX-758: [Module Loader] NXO's which contain arm.exidx sections fail to relocate correctly and may cause crash - Closed (Fixed)
 - RCX-760: [Middleware] DIAG_INFO_GET_COMMON_STATE_REQ (0x2F00) is not handled anymore and returns with RCX_E_UNKNOWN_COMMAND - Closed (Fixed)
 - RCX-762: [Module Loader] NXO may crash basefirmware when linked against thumb version of libgcc depending on internal file offset - Closed (Fixed)
 - RCX-763: [Kernel] Deleting an kernel object (e.g. Semaphore) while creating another object in different task may result in a defective object list and cause crash / malfunction - Closed (Fixed)
 - RCX-764: [Kernel] Eventgroups don't automatically reset event after successful wait - Closed (Fixed)
 - RCX-765: [Middleware] Mid_FatFlushFile does not update the file information (file size) correctly - Closed (Fixed)
 - RCX-766: [General] TLR_Types.h does not compile using -wundef -werror warning levels - Closed (Fixed)
 - RCX-770: [Module Loader] NXO's containing untyped symbols in R_ARM_THM_CALL relocations may crash - Closed (Fixed)
 - RCX-772: [Kernel] rX_SysSleepTask returns wrong value if timeout was elapsed (should be 0) - Closed (Fixed)
 - RCX-774: [Middleware] Mid_DbmWriteFile() may leave an open file handle if writing fails - Closed (Fixed)
 - RCX-778: [Drivers] [netX10,51,52] Drv_TimGetTime does not correctly return elapsed time from timers 0/1 (ARM_TIMER) - Closed (Fixed)
 - RCX-782: [Middleware] [DPM] RCX_SYS_STATUS_OK is not automatically set in SystemStatusBlock - Closed (Fixed)
 - RCX-784: [Middleware] RCX_BACKUP_REQ will not backup directories and files starting with a "." - Closed (Fixed)
 - RCX-787: [General] Add new protocoll class definitions - Closed (Fixed)
 - RCX-788: [Drivers] Add new communication class - Closed (Fixed)
 - RCX-790: [General] [netX51] - Headerfile netX.h describing netX bootblock is missing - Closed (Fixed)
 - RCX-791: [Kernel] Eventgroups may loose an event if multiple events are signalled in independent calls - Closed (Fixed)
 - RCX-792: [General] Add new device class RCX_HW_DEV_CLASS_GW_NETTAP_151 - Closed (Fixed)
 - RCX-793: [Middleware] Writing MAC address to security memory via device data provider or via RCX_SET_MAC_ADDRESS_REQ (with store permanent bit set) corrupts zone1 of security memory - Closed (Fixed)
 - RCX-799: [Kernel] Two timers may cause a deadlock if their ulPeriod value gets reset to 0 - Closed (Fixed)
 - RCX-800: [Kernel] Idle task causes deadlock/exception on freeing memory of a deleted task - Closed (Fixed)
 - RCX-801: [Middleware] Bootmedia status not shown in system status (ulSystemStatus) - Closed (Fixed)
 - RCX-803: [Middleware] Missing bootmedia status for SQIROM in system status - Closed (Fixed)
 - RCX-805: [Middleware] Bootmedia information in system status (ulSystemStatus) wrong on RAM based devices (CIFX) - Closed (Fixed)
 - RCX-806: [Drivers] Wrong Transmission flags value for Common Status Block - Closed (Fixed)
 - RCX-814: [Kernel] rX_SysDelayTaskUntil() does not wake up a task at a given tick count - Closed (Fixed)
 - RCX-818: [General] Adding parameter definition for  RCX_START_STOP_COMM_REQ packet command - Closed (Fixed)
 - RCX-819: [Middleware] RCX_DPM_GET_BLOCK_INFO_REQ delivers wrong values for unknown subblocks - Closed (Fixed)
 - RCX-822: [General] Remove PC-Lint warnings - Closed (Fixed)
 - RCX-828: [General] RCX_LINK_STATUS_T from rcX_Public.h leads into invalid packet structure on a host - Closed (Fixed)
 - RCX-835: [Drivers] Prevent the RDY/RUN LED state when reading information from SEC-MEM - Closed (Fixed)
 - RCX-836: [Middleware] rX_DdpGetExtendedDeviceData() copies too many data to user buffer - Closed (Fixed)
 - RCX-837: [Drivers] Support for Winbond W25Q64 Flash in Drv_Sfl driver - Closed (Fixed)
 - RCX-838: [Drivers] Support for Winbond W25Q64 Flash in Drv_SqiRom driver (XIP) - Closed (Fixed)
 - RCX-840: [General] Add new device classes - Closed (Fixed)
 - RCX-842: [Middleware] Mid_FatCreateFile() returns a NULL pointer without an error information - Closed (Fixed)
 - RCX-843: [Drivers] DRV_EDD allow up to 16 clients to register for link status change events - Closed (Fixed)
 - RCX-844: [Drivers] Add support for SFDP compatible serial flashes - Closed (Done)
 - RCX-848: [Middleware] Make CPULoad and TimeSinceStart available without a DPM - Closed (Done)
 - RCX-849: [General] Add new device classes RCX_HW_DEV_CLASS_GW_NETTAP_151_CCIES and RCX_HW_DEV_CLASS_CIFX_CCIES - Closed (Done)
 - RCX-850: [Drivers] Add new IOCTL command codes to AP_Edd.h - Closed (Done)
 - RCX-851: [Drivers] Multiple calls to Drv_EddRegisterEthCb() with same ethertype - Closed (Fixed)
 - RCX-852: [Middleware] RCX_RESTORE_REQ does not correctly evaluate the packet data - Closed (Fixed)

V2.1.11.11 (2017-05-22)
-----------------------
 - RCX-842: [Middleware] Mid_FatCreateFile() returns a NULL pointer without an error information - Closed (Fixed)
 - RCX-843: [Drivers] DRV_EDD allow up to 16 clients to register for link status change events - Closed (Fixed)

V2.1.11.10 (2016-11-01)
-----------------------
 - RCX-836: [Middleware] rX_DdpGetExtendedDeviceData() copies too many data to user buffer - Closed (Fixed)
 - RCX-837: [Drivers] Support for Winbond W25Q64 Flash in Drv_Sfl driver - Closed (Fixed)
 - RCX-838: [Drivers] Support for Winbond W25Q64 Flash in Drv_SqiRom driver (XIP) - Closed (Fixed)
 - RCX-840: [General] Add new device classes - Closed (Fixed)

V2.1.11.9 (2016-05-02)
----------------------
 - RCX-388: [Drivers] Drv_HifSetupDMA() does not check the length of the DMA transfer - Closed (Fixed)
 - RCX-774: [Middleware] Mid_DbmWriteFile() may leave an open file handle if writing fails - Closed (Fixed)
 - RCX-790: [General] [netX51] - Headerfile netX.h describing netX bootblock is missing - Closed (Fixed)
 - RCX-803: [Middleware] Missing bootmedia status for SQIROM in system status - Closed (Fixed)
 - RCX-805: [Middleware] Bootmedia information in system status (ulSystemStatus) wrong on RAM based devices (CIFX) - Closed (Fixed)
 - RCX-806: [Drivers] Wrong Transmission flags value for Common Status Block - Closed (Fixed)
 - RCX-814: [Kernel] rX_SysDelayTaskUntil() does not wake up a task at a given tick count - Closed (Fixed)
 - RCX-818: [General] Adding parameter definition for  RCX_START_STOP_COMM_REQ packet command - Closed (Fixed)
 - RCX-819: [Middleware] RCX_DPM_GET_BLOCK_INFO_REQ delivers wrong values for unknown subblocks - Closed (Fixed)
 - RCX-822: [General] Remove PC-Lint warnings - Closed (Fixed)
 - RCX-828: [General] RCX_LINK_STATUS_T from rcX_Public.h leads into invalid packet structure on a host - Closed (Fixed)
 - RCX-835: [Drivers] Prevent the RDY/RUN LED state when reading information from SEC-MEM - Closed (Fixed)

V2.1.11.8 (2015-10-23)
----------------------
 - RCX-799: [Kernel] Two timers may cause a deadlock if their ulPeriod value gets reset to 0 - Closed (Fixed)
 - RCX-800: [Kernel] Idle task causes deadlock/exception on freeing memory of a deleted task - Closed (Fixed)
 - RCX-801: [Middleware] Bootmedia status not shown in system status (ulSystemStatus) - Closed (Fixed)

V2.1.11.7 (2015-08-28)
----------------------
 - RCX-798: [General] Add new version of SHM API to support handling of device controlled modes - Closed (Fixed)

V2.1.11.6 (2015-07-28)
----------------------
 - RCX-793: [Middleware] Writing MAC address to security memory via device data provider or via RCX_SET_MAC_ADDRESS_REQ (with store permanent bit set) corrupts zone1 of security memory - Closed (Fixed)

V2.1.11.5 (2015-07-08)
----------------------
 - RCX-791: [Kernel] Eventgroups may loose an event if multiple events are signalled in independent calls - Closed (Fixed)
 - RCX-792: [General] Add new device class RCX_HW_DEV_CLASS_GW_NETTAP_151 - Closed (Fixed)

V2.1.11.4 (2015-05-19)
----------------------
 - RCX-763: [Kernel] Deleting an kernel object (e.g. Semaphore) while creating another object in different task may result in a defective object list and cause crash / malfunction - Closed (Fixed)
 - RCX-764: [Kernel] Eventgroups don't automatically reset event after successful wait - Closed (Fixed)
 - RCX-765: [Middleware] Mid_FatFlushFile does not update the file information (file size) correctly - Closed (Fixed)
 - RCX-766: [General] TLR_Types.h does not compile using -wundef -werror warning levels - Closed (Fixed)
 - RCX-770: [Module Loader] NXO's containing untyped symbols in R_ARM_THM_CALL relocations may crash - Closed (Fixed)
 - RCX-772: [Kernel] rX_SysSleepTask returns wrong value if timeout was elapsed (should be 0) - Closed (Fixed)
 - RCX-778: [Drivers] [netX10,51,52] Drv_TimGetTime does not correctly return elapsed time from timers 0/1 (ARM_TIMER) - Closed (Fixed)
 - RCX-782: [Middleware] [DPM] RCX_SYS_STATUS_OK is not automatically set in SystemStatusBlock - Closed (Fixed)
 - RCX-787: [General] Add new protocoll class definitions - Closed (Fixed)
 - RCX-788: [Drivers] Add new communication class - Closed (Fixed)

V2.1.11.3 (2015-02-26)
----------------------
 - RCX-762: [Module Loader] NXO may crash basefirmware when linked against thumb version of libgcc depending on internal file offset - Closed (Fixed)

V2.1.11.2 (2015-02-03)
----------------------
 - RCX-758: [Module Loader] NXO's which contain arm.exidx sections fail to relocate correctly and may cause crash - Closed (Fixed)
 - RCX-760: [Middleware] DIAG_INFO_GET_COMMON_STATE_REQ (0x2F00) is not handled anymore and returns with RCX_E_UNKNOWN_COMMAND - Closed (Fixed)

V2.1.11.1 (2015-01-16)
----------------------
 - RCX-756: [Kernel] Trying to suspend a task while scheduler is locked may schedule wrong task once - Closed (Fixed)
 - RCX-757: [General] Undo packing of TLR_PACKET_HEADER_T/TLR_UUID_T to avoid alignment issues - Closed (Fixed)

V2.1.11.0 (2014-12-16)
----------------------
 - RCX-503: [Middleware] Restrict file operations of special "." (single dot) and ".." (double dot) entries - Closed (Fixed)
 - RCX-722: [Drivers] [netX10/50/51] - SPI transfer fails for high frequencies (>= 5MHz) if the second spi bus works with frequencies lower than 5 MHz - Closed (Fixed)
 - RCX-723: [Drivers] Drv_MMC rejects SD cards which do not respond to mandatory command CMD1 (SEND_OP_COND) - Closed (Fixed)
 - RCX-725: [Middleware] Creating a directory or file on a corrupt volume may keep the volume locked - Closed (Fixed)
 - RCX-726: [Middleware] Device data provider: Support notifications to signal changes in database - Closed (Fixed)
 - RCX-727: [Middleware] Device data provider: Introduce module interface for default provider to support multiple data sources - Closed (Fixed)
 - RCX-730: [Middleware] Support for installable packet handler  - Closed (Fixed)
 - RCX-731: [Drivers] Allow configuration of UART baud rates up to 3.125 MBaud - Closed (Fixed)
 - RCX-732: [General] [netX10/50/51/52] Speed up .bss clearing in chip initialization code for larger .bss sections (Init_netx.S) - Closed (Fixed)
 - RCX-733: [Middleware] Mid_FatDeleteAll does not delete any files / directories but returns RX_OK - Closed (Fixed)
 - RCX-735: [Drivers] SysTime driver is not thread save - Closed (Fixed)
 - RCX-736: [Middleware] Add packet service to request kernel debug information (memory dump, kernel objects etc.) - Closed (Fixed)
 - RCX-737: [Drivers] Add Support for Numonyx M45PE16 serial flash - Closed (Fixed)
 - RCX-739: [Drivers] Provide Api to retrieve Flash Information - Closed (Fixed)
 - RCX-744: [Middleware] Mid_FatDeinitialize does not close open files on the volume - Closed (Fixed)
 - RCX-745: [Drivers] Trying to change PHY registers directly after Drv_PhyInitialize does not work correctly when fPowerDown is set to TRUE - Closed (Fixed)
 - RCX-748: [Middleware] Mid_FatDelete unintentionally permits deletion of files in use - Closed (Fixed)
 - RCX-749: [Middleware] Mid_FatFlush does not work - Closed (Fixed)
 - RCX-750: [Module Loader] Module library lacks trampolines for MD5 hash function routines - Closed (Fixed)
 - RCX-751: [Middleware] Mid_FatFlushFile may cause data loss if file size has changed since last finished file operation - Closed (Fixed)
 - RCX-754: [Middleware] DPM reports undefined RTC type if RTC was not explicitly configured at startup - Closed (Fixed)

V2.1.10.0 (2014-05-20)
----------------------
 - RCX-715: [Middleware] Introduce service RCX_FILE_RENAME_REQ to support file renaming - Closed (Fixed)
 - RCX-716: [Kernel] Timer task may stall if timer callback routine invokes blocking kernel service - Closed (Fixed)
 - RCX-718: [Kernel] Kernel Timer Tick wrap-around (after ~49days) causes timers to get corrupted and not execute at all (single shot) or execute faster than expected (reload timers) - Closed (Fixed)
Changed:
 - Complete rcX V2.0 Kernel rewrite, with new scheduling options
 - Internal structural changes, for optimizing size and performance
 - Compiled using new ARM EABI toolchain

Added:
 - netX10 Support
 - netX51 Support

Removed:
 - Unused Kernel Modules:
   * Barriers (rX_Bar)
   * Fault Logging Module (rX_Flt)
   * Finite State Machine (rX_Fsm)
   * Verbose printf (rX_Vbs)
   * Mailboxes (rX_Mbx)
